package com.lexue.articlesync.config;

import com.lexue.articlesync.entity.Platform;
import com.lexue.articlesync.repository.PlatformRepository;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;

/**
 * 数据初始化
 */
@Slf4j
@Component
@RequiredArgsConstructor
public class DataInitializer implements CommandLineRunner {
    
    private final PlatformRepository platformRepository;
    
    @Override
    public void run(String... args) throws Exception {
        initializePlatforms();
    }
    
    /**
     * 初始化平台数据
     */
    private void initializePlatforms() {
        // 检查是否已经有平台数据
        if (platformRepository.count() > 0) {
            log.info("平台数据已存在，跳过初始化");
            return;
        }
        
        log.info("开始初始化平台数据...");
        
        // 头条号
        Platform toutiao = Platform.builder()
                .code("toutiao")
                .name("头条号")
                .description("今日头条内容创作平台")
                .iconUrl("/images/platforms/toutiao.png")
                .websiteUrl("https://mp.toutiao.com")
                .apiBaseUrl("https://mp.toutiao.com")
                .supportedTypes("article,video")
                .enabled(true)
                .sortOrder(1)
                .build();
        
        // B站
        Platform bilibili = Platform.builder()
                .code("bilibili")
                .name("哔哩哔哩")
                .description("哔哩哔哩弹幕网")
                .iconUrl("/images/platforms/bilibili.png")
                .websiteUrl("https://www.bilibili.com")
                .apiBaseUrl("https://member.bilibili.com")
                .supportedTypes("video")
                .enabled(true)
                .sortOrder(2)
                .build();
        
        // 抖音
        Platform douyin = Platform.builder()
                .code("douyin")
                .name("抖音")
                .description("抖音短视频平台")
                .iconUrl("/images/platforms/douyin.png")
                .websiteUrl("https://www.douyin.com")
                .apiBaseUrl("https://creator.douyin.com")
                .supportedTypes("video")
                .enabled(true)
                .sortOrder(3)
                .build();
        
        // 西瓜视频
        Platform xigua = Platform.builder()
                .code("xigua")
                .name("西瓜视频")
                .description("西瓜视频创作平台")
                .iconUrl("/images/platforms/xigua.png")
                .websiteUrl("https://www.ixigua.com")
                .apiBaseUrl("https://studio.ixigua.com")
                .supportedTypes("video")
                .enabled(true)
                .sortOrder(4)
                .build();
        
        // 微信公众号
        Platform wechat = Platform.builder()
                .code("wechat")
                .name("微信公众号")
                .description("微信公众平台")
                .iconUrl("/images/platforms/wechat.png")
                .websiteUrl("https://mp.weixin.qq.com")
                .apiBaseUrl("https://api.weixin.qq.com")
                .supportedTypes("article")
                .enabled(true)
                .sortOrder(5)
                .build();
        
        // 知乎
        Platform zhihu = Platform.builder()
                .code("zhihu")
                .name("知乎")
                .description("知乎创作平台")
                .iconUrl("/images/platforms/zhihu.png")
                .websiteUrl("https://www.zhihu.com")
                .apiBaseUrl("https://www.zhihu.com/api")
                .supportedTypes("article")
                .enabled(true)
                .sortOrder(6)
                .build();
        
        // 保存到数据库
        platformRepository.save(toutiao);
        platformRepository.save(bilibili);
        platformRepository.save(douyin);
        platformRepository.save(xigua);
        platformRepository.save(wechat);
        platformRepository.save(zhihu);
        
        log.info("平台数据初始化完成，共创建 {} 个平台", 6);
    }
}